In the field of data communications, it is well known that data can be lost or corrupted during transmission between a sender and a receiver. Typically, the reliability of the communications network is characterised by the Bit Error Ratio (BER), which measures the ratio of erroneously received bits (or symbols) to the total number of bits or symbols transmitted.
Various known methods are used to detect and correct data transmission errors, and thereby minimize the BER. These techniques normally fall into one of two categories, namely Automatic Resend Request (ARQ) and Forward Error Correction (FEC).
Automatic Resend Request (ARQ) techniques involve processing data at the receiver to detect erroneous or missing data. If such transmission errors are detected, an ARQ message is sent to request that the transmitter re-send the erroneous or missing data. In most packet networks any packet that has errors (CRC failure) at an intermediate node is deleted and not forwarded. These techniques suffer limitations in that they produce a large amount of control messaging between the transmitter and the receiver, and they require the transmitter to store in memory all of the data that it has transmitted, until the receiver confirms that the data has been successfully received. In high speed communications systems, the required memory in the transmitter becomes undesirably large, and the control signalling consumes an undesirably high amount of network resources. In addition, the round-trip delay experienced in sending an ARQ message and receiving a resent packet, can be undesirable in some applications.
Forward Error Correction (FEC) techniques involve processing the data prior to transmission, to generate parity (or check) symbols that may be used at the receiver to detect and correct erroneously received data. Well known FEC schemes include, but are not limited to, Turbo codes, Low-Density Parity Check (LDPC) codes, Block Turbo codes, Reed Solomon codes and BCH codes. For example, by adding T check symbols to a data frame being transmitted, a Reed Solomon code can detect up to T erroneous symbols in the receiver, and correct up to T/2 erroneous symbols in the received frame. An assumption of Reed Solomon encoding is that the errored symbols in the frame follow a Poisson distribution, that is, the probability that any given symbol is erroneous is equal to that of every other symbol, and is independent of any other symbol. As is known in the art, FEC techniques have an advantage that they avoid the need for storing and resending packets, and so avoid the above-noted problems associated with ARQ, but at a cost of increased overhead.
It is desirable to minimize the overhead, and have a very high noise tolerance, which has lead to the use of iterative sparse-graph FEC techniques such as Turbo codes and LDPC codes. However, these techniques suffer from a problem in that a decoded frame may contain residual errors that cannot be corrected by the selected FEC scheme. This problem may arise due to either channel effects (such as cycle slips) or limitations of the FEC algorithm itself, and normally affects a minority of the frames comprising a given signal. However, even when most of the frames are correctly decoded, a small number of decoded frames with significant residual errors can raise the BER of the signal as a whole. Within limits, the error-correction performance of iterative FEC techniques can be improved by increasing the number of iterations implemented by the decoder. However, there is a lower limit to the BER that can be achieved by these techniques, which cannot be further reduced by additional iterations. This lower limit is referred to as an “error floor”. In the case of Turbo codes and LDPC codes, for example, error floors in the range of 10−4 to 10−10 are often encountered, which is unacceptably high for many users of optical transmission systems. Code designs that maximize error correction performance at high noise levels (low signal to noise ratio (SNR)) often raise the error floor. For high speed optical communications systems, hardware implementations of the FEC decoder are required, but this also raises the error floor.
Y. Miata et al. “Efficient FEC for Optical Communications using Concatenated Codes to Combat Error-floor”, OFC/NFOEC 2008, describes the use of concatenation of a Reed Solomon code with an LDPC code to effectively eliminate error floors. This technique assumes that the errors remaining after the LDPC decoding step are small enough in number and follow a close enough approximation to a Poisson distribution that the Reed Solomon code will be capable of correcting them. However, in an optical communications system, cycle slips during carrier recovery can cause error bursts that are challenging for the FEC to correct. Under these conditions, the errored symbols remaining after the LDPC decoding are often too numerous and/or sufficiently non-Poisson that the concatenated Reed Solomon decoding provides very little real benefit.
J. Nonnenmacher et al. “Parity-Based Loss Recovery for Reliable Multicast Transmission”, IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 6, NO. 4, August 1998 describes techniques which combine Forward Error Correction and Automatic Repeat Request (ARQ) to achieve scalable reliable multicast transmission. packet system. In this arrangement, packets are held in an ARQ buffer, and a parity packet is sent so that it can be used to recreate a missing packet without having to request retransmission of that missing frame. This arrangement allows a missing or dropped frame to be recovered at a receiver, and so reduces the number of re-transmission requests received by the multicast root node. However, a large ARQ buffer is still required in the root node, because the need to re-transmit lost packets is not eliminated entirely.
Techniques for data recovery that overcome limitations of the prior art remain highly desirable. In particular, it is desirable to have an error correction scheme for high speed optical transmission systems that has both very strong noise performance and a very low error floor.